<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Promise 发送 AJAX</title>
</head>
    <button>AJAX</button>

    <script>
        //需求: 
        // 点击按钮向 http://api.xiaohigh.com/goods 发送 GET 请求, 在控制台输出『响应体结果』
        //获取按钮
        let btn = document.querySelector('button');
        //绑定事件
        btn.onclick = function(){
            //AJAX 请求
            let p = new Promise((resolve, reject) => {
                //异步任务的
                let xhr = new XMLHttpRequest();
                //初始化
                xhr.open('get', 'http://api.xiaohigh.com/goods');
                //发送
                xhr.send();
                //绑定事件
                xhr.onreadystatechange = function(){
                    //判断
                    if(xhr.readyState === 4){
                        //判断响应结果是否成功
                        if(xhr.status >= 200 && xhr.status < 300){
                            //成功
                            resolve(xhr.response);
                        }else{
                            //失败
                            reject(xhr.status);
                        }
                    }
                }
            });
            //调用 then 方法
            p.then(value => {
                //控制台输出响应体
                console.log(value);
            }, reason => {
                //失败
                console.log('请求失败, 响应状态码为: ' + reason);
            })
        }

    </script>
<body>
</body>
</html>